package com.example.demo.service;

import com.example.demo.domain.app.param.ProductParam;
import com.example.demo.domain.app.vo.ProductDetailVO;
import com.example.demo.domain.app.vo.ProductVO;
import com.example.demo.domain.base.PageResult;
import com.example.demo.domain.entity.ProductDO;
import com.example.demo.domain.param.ProductManagementParam;
import com.example.demo.domain.param.ProductManagementQueryParam;
import com.example.demo.domain.param.ProductManagementUpdateParam;
import com.example.demo.domain.vo.ProductManagementDetailVO;
import com.example.demo.domain.vo.ProductManagementVO;

/**
 * ProductManagementService
 *
 * @author haochen78
 * @date 2025/10/30 20:53
 **/
public interface ProductManagementService {
    PageResult<ProductManagementVO> list(ProductManagementQueryParam param);

    ProductManagementDetailVO getDetail(Long id);

    void create(ProductManagementParam param);

    void update(ProductManagementParam param);

    void updateSelective(ProductManagementUpdateParam param);

    void delete(Long id);

    PageResult<ProductVO> appList(ProductParam param);

    ProductDetailVO detail(Long id);
}
